import { type pageInfo } from '@/page/types/base/baseRequestPage'
import { type relationTreeInfo } from '@/page/types/system/city'
import { isMobile } from '@/util/checkStr'

export interface companyInfo {
  /**
   * Id
   */
  id: string
  /**
   * 状态
   */
  status: boolean
  /**
   * 创建人
   */
  createBy: string

  /**
   * 创建时间
   */
  createTime: string

  /**
   * 公司名称
   */
  name: string

  /**
   * 公司地址
   */
  address: string

  /**
   * 公司电话
   */
  phone: string

  /**
   * 公司口号
   */
  slogan: string

  /**
   * 公司创建时间
   */
  cTime: string
  /**
   * 客户端默认公司
   */
  defaulted: boolean
  /**
   * 公司介绍
   */
  introduction: string | ''
  /**
   * 城市集合
   */
  allCity: number[]
  /** 省 */
  province: number
  /** 市 */
  city: number
  /** 区 */
  district: number
}

export interface companyPicture {
  /**
   * Id
   */
  id: string
  /**
   * 城市集合
   */
  url: string[] | null
}

export interface companySeachInfo extends pageInfo {
  /**
   * Id
   */
  id: string
  /**
   * 状态
   */
  status: boolean | true
  /**
   * 创建人
   */
  createBy: string
  /**
   * 创建时间和结束时间数组
   */
  startEndTime: string | undefined

  /**
   * 创建时间
   */
  createTime: string | undefined

  /**
   * 公司名称
   */
  name: string

  /**
   * 公司地址
   */
  address: string

  /**
   * 公司电话
   */
  phone: string

  /**
   * 公司口号
   */
  slogan: string

  /**
   * 公司创建时间
   */
  cTime: string

  /**
   * 公司介绍
   */
  introduction: string
  /**
   * 开始时间
   */
  startTime: string
  /**
   * 结束时间
   */
  endTime: string
}

export class companyClass {
  value2 = ref('')
  tableData = [] as companySeachInfo[]
  title = '添加公司'
  dialogFormVisible = false
  dialogCompanyPicture = false
  addRules = {
    name: [
      {
        required: true,
        message: '公司名称不能为空',
        trigger: 'blur'
      }
    ],
    phone: [{ required: true, validator: isMobile, trigger: 'blur' }],
    cTime: [
      {
        required: true,
        message: '公司创建时间不能为空',
        trigger: 'blur'
      }
    ],
    allCity: [
      {
        required: true,
        message: '公司地址不能为空',
        trigger: 'blur'
      }
    ],
    address: [
      {
        required: true,
        message: '公司详细地址不能为空',
        trigger: 'blur'
      }
    ]
  }

  addPictureRules = {}
  companySeachMethod: companySeachInfo = {
    address: '',
    cTime: '',
    createBy: '',
    createTime: '',
    startEndTime: '',
    startTime: '',
    endTime: '',
    id: '',
    introduction: '',
    name: '',
    page: 1,
    phone: '',
    size: 10,
    slogan: '',
    status: true,
    total: 0
  }

  companyEdit: companyInfo = {
    address: '',
    cTime: '',
    createBy: '',
    createTime: '',
    id: '',
    introduction: '',
    name: '',
    phone: '',
    slogan: '',
    status: true,
    allCity: [],
    /** 省 */
    province: 0,
    /** 市 */
    city: 0,
    /** 区 */
    district: 0,
    defaulted: false
  }

  companyPictureInfo: companyPicture = {
    id: '',
    url: []
  }

  page = 0
  size = 10
  total = 0
  relationTrees = [] as relationTreeInfo[]
  props = {
    label: 'name',
    value: 'id',
    children: 'children',
    checkStrictly: true,
    emitPath: true
  }
}
